﻿#pragma once
#include <GetSystemSetting.h>			// 网络连接 进程 服务 账户安全
#include <list>
#include <set>
#include <string>


#define FASTGATHER			1
#define ALLDISKGATHER		2
#define CUSTOMGATHER		3

#define CHECK_SYSLOG				0x0000003
#define CHECK_APPLOG				0x0000004
#define CHECK_SECLOG				0x0000005
#define CHECK_FILECHECK				0x0000007
#define CHECK_PORTCHECK				0x0000009
#define CHECK_PROCESSCHECK			0x000000A
#define CHECK_SERVERCHECK			0x000000B
#define CHECK_SOFTCHECK				0x000000C
#define CHECK_SECBASELINECHECK2		0x000000D	// 账户安全
#define CHECK_FILESHARE				0x000000E
#define CHECK_INTERCHECK			0x0000010	// 联网痕迹 轻度
#define CHECK_INTERDEEP				0x0000011	// 联网痕迹 深度

#define CHECK_USBCHECK				0x0000012	// 介质 轻度
#define CHECK_USBDEEP				0x0000013	// 介质 深度

#define CHECK_SECBASELINECHECK1		0x0000014	// 授权安全
#define CHECK_SECBASELINECHECK3		0x0000015	// 服务访问安全
#define CHECK_SECBASELINECHECK4		0x0000016	// 口令安全
#define CHECK_SECBASELINECHECK5		0x0000017	// 网络访问安全
#define CHECK_SECBASELINECHECK6		0x0000018	// 文件访问安全
#define CHECK_PATCHCHECK			0x0000019	// 系统补丁
#define CHECK_ANALYZE				0x0000020	// 综合分析
#define CHECK_ARP					0X0000021	//arp记录
#define CHECK_USN					0X0000022	//usn记录
#define CHECK_DNS					0X0000023	//DNS记录
#define CHECK_LOGPOLICY					0X0000024	//日志策略
#define CHECK_PATHINFO					0X0000025	//系统补丁
#define CHECK_FILEINFO					0X0000026	//磁盘文件
#define CHECK_HOSTBASEINFO					0X0000027	//主机信息
#define CHECK_STARTUPINFO					0X0000028	//主机信息
#define CHECK_TASKLISTSINFO					0X0000029	//主机信息
#define CHECK_DATABASELOGINFO              0X0000036   //数据库日志
#define CHECK_NETWORKCARD					  0X0000037	 //网卡
#define CHECK_MEMORY					  0X0000038	 //内存
#define CHECK_HARDWARE					  0X0000039	 //硬件信息
#define CHECK_WIRELESS					  0X0000040	 //无线通讯设备
#define CHECK_CLIPBOARD					  0X0000041	 //剪切板内容
void CheckLogAudit(std::list<ACCOUNTINFO>&info);
void GetPathInfo(std::set<PATHINFOLIST>&PathLists);
class CModule : public CWnd
{
	DECLARE_DYNAMIC(CModule)

public:
	CModule();
	virtual ~CModule();

public:
	//void HostLog(HWND hWnd, int nType,CTime begTime, sqlite3*db);	// 主机日志
	void HostLog(HWND hWnd, int nType,CTime begTime, sqlite3*db,CString dbName);	// 主机日志
	void FileTrace(HWND hWnd, sqlite3*db);							// 文件使用痕迹
	void NetTrace(HWND hWnd, int nType, sqlite3*db);				// 联网痕迹
	void NetWorkCard(HWND hWnd, sqlite3* db);						// 网卡
	void Port(HWND hWnd, sqlite3*db);								// 网络连接
	void Process(HWND hWnd, sqlite3*db);							// 进程
	void Service(HWND hWnd, sqlite3*db);							// 服务
	void SoftWare(HWND hWnd, sqlite3*db);							// 安装软件
	void AccountSec(HWND hWnd, sqlite3*db);							// 安全基线
	void FileShare(HWND hWnd, sqlite3*db);							// 文件共享
	void USBTrace(HWND hWnd, int nType, sqlite3*db);				// USB插拔记录
	void ARPTrace(HWND hWnd, sqlite3*db);							//arp记录
	void USNTrace(CString strDisk,HWND hWnd, sqlite3*db,int nType,CTime stStartTime,CTime stEndTime,bool isFast);			//usn记录
	void DNSTrace(HWND hWnd, sqlite3*db);							//dns记录
	void LogPolicyTrace(HWND hWnd, sqlite3*db);						//日志策略检测
	void PathInfoTrace(HWND hWnd, sqlite3*db);						//系统补丁
	void FileInfoTrace(CString strDisk,HWND hWnd, sqlite3*db,int nType,CTime stStartTime,CTime stEndTime, bool isFast);//磁盘文件
	void HostBaseInfo(HWND hWnd, sqlite3*db);//主机信息
	void StartUpInfo(HWND hWnd, sqlite3*db);//启动项
	void TaskListsInfo(HWND hWnd, sqlite3*db);//计划任务
	void DataBaseLogInfo(HWND hWnd, sqlite3*db,int nType,CTime stStartTime,CTime stEndTime);//获取数据库日志
	void Memory(HWND hWnd, sqlite3* db);//获取内存
	void Hardware(HWND hWnd, sqlite3* db);//获取硬件信息
	void Wireless(HWND hWnd, sqlite3* db);//获取无线通讯设备

	void Clipboard(HWND hWnd, sqlite3* db);//剪切板
	// 写sqlite3
	void WriteSqlite3(HWND hWnd, int TaskID,int nType,CTime stStartTime,CTime stEndTime);


	// 删除xml文件
	static void MyDeleteFile(CString FilePath);

	static void KillVirusScanProc();

public:
	// 标志位, 是否停止采集(点击停止按钮)
	static BOOL m_bStop;

	// 存储 病毒扫描进程信息 的容器
	static std::vector<PROCESS_INFORMATION> m_vHandle;

	static CString m_csEventTaskId;
	CTime m_endTime;
	CTime m_beginTime;

protected:
	DECLARE_MESSAGE_MAP()
};


